/**
假设有一个很长的花坛，一部分地块种植了花，另一部分却没有。
可是，花不能种植在相邻的地块上，它们会争夺水源，两者都会死去。

给你一个整数数组  flowerbed 表示花坛，由若干 0 和 1 组成
，其中 0 表示没种植花，1 表示种植了花。另有一个数 n ，
能否在不打破种植规则的情况下种入 n 朵花？能则返回 true ，
不能则返回 false。
*/

//这道题目主要麻烦的地方就是处理左边界和右边界的情况
class Solution{
	public boolean canPlaceFlowers(int[] flowerbed,int n){
		int num=0,count=1;//假设在数组左边添加0，以解决边界问题，令count初始为1
		for(int i=0;i<flowerbed.length;i++){
			if(flowerbed[i]==0){
				count++;
			}else{
				count=0;
			}
			if(count==3){//每连续三个0种一次花
				num++;
				count=1;
			}
		}	
		if(count==2){//如果最后count为2而不是1，表示最后一个位置可以种花
			num++;
		}
	return num>=n;
	}
}